Seguidores

sábado, 26 de abril de 2025

Do Caos ao Prompt T4E06: Desenvolvimento do App AG2P – Evento "Ocorreu um incidente"

INTRODUÇÃO

Post anterior: Do Caos ao Prompt T4E05: Desenvolvimento do App AG2P – Evento "Terminou tarefa do negócio"

    Este Post é o episódio 6 da temporada 4 da série "Do Caos ao Prompt", que apresenta o desenvolvimento do Agente de Gestão de Processo Pessoal (AG2P), tendo como foco o evento "Ocorreu um incidente".


    Evento “Ocorreu um incidente”

    Link da conversa com o Gemini, na qual foi apresentado um Prompt contendo os itens Objetivo, Contexto, Ferramentas e Especificações, para geração do código para implementar o evento
    "Ocorreu um incidente": https://g.co/gemini/share/cc7b890fee26

    Comando ao Gemini para solicitar a implementação do evento

    Objetivo, Contexto e Ferramentas

    Clique aqui para  ver os itens Objetivo, Contexto e Ferramentas do Comando.

    Especificações

    Segue abaixo o post da temporada 3 desta série, que contém as especificações do evento "Ocorreu um incidente", que faz parte deste comando:

    Do Caos ao Prompt T3E07: Estrutura do Agente AG2P - Diálogo 5 Evento "Ocorreu um incidente" dispara Ação "Registrar incidente"

    As especificações do evento foram feitas com Finite State Machine (FSM), de tal forma que cada evento pode ser automatizado e testado de forma independente.

    Resposta do Gemini


    /**
     * Automatiza o evento "Ocorreu um incidente" no fluxo de trabalho do RDM.
     *
     * Este script é acionado quando o evento "Ocorreu um incidente" é disparado
     * e registra as informações correspondentes na aba "GPS" da planilha.
     *
     * Pré-condições:
     * - A aba da planilha ativa deve ser a aba "RDM".
     * - A célula T1 da aba "RDM" deve conter o texto "RDM Ativa".
     *
     * Ações executadas:
     * - Mantém o estado da aba "RDM" como "RDM Ativa" (célula T1).
     * - Solicita ao usuário que registre o incidente nas colunas I e J da aba "GPS".
     *
     * Regras aplicadas: R06, R31, R44, R48, R50.
     */
    function ocorreuUmIncidente() {
      // Obtém a planilha ativa e as abas relevantes.
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var rdmAba = ss.getActiveSheet();
      var gpsAba = ss.getSheetByName("GPS");

      // Verifica se a aba ativa é a "RDM".
      if (rdmAba.getName() !== "RDM") {
        SpreadsheetApp.getUi().alert('A aba ativa deve ser "RDM" para registrar um incidente.');
        return;
      }

      // Verifica se o estado da RDM é "RDM Ativa".
      var estadoRDM = rdmAba.getRange("T1").getValue();
      if (estadoRDM !== "RDM Ativa") {
        SpreadsheetApp.getUi().alert('O estado da RDM deve ser "RDM Ativa" para registrar um incidente.');
        return;
      }

      // Mantém o estado da RDM como "RDM Ativa" (R44).
      rdmAba.getRange("T1").setValue("RDM Ativa");

      // Solicita ao usuário que registre o incidente nas colunas I e J da aba "GPS" (R48, R50).
      SpreadsheetApp.getUi().alert(
        'Por favor, registre o incidente nas colunas I (NOK - PONTOS PROBLEMÁTICOS E AÇÕES CORRETIVAS) e J (NOK - CAUSA PROVÁVEL) da aba "GPS".'
      );

      // As regras R06 e R31 dependem do momento do registro e devem ser aplicadas
      // no momento em que o usuário insere os dados na aba "GPS". Não há uma
      // ação automática direta para aplicar essas regras neste script, pois
      // ele apenas direciona o usuário a inserir os dados. A validação dessas
      // regras pode ser feita através de Data Validation na própria planilha "GPS"
      // ou por outro script que seja executado após a inserção dos dados.

      // Após a execução, o app aguarda o próximo evento.
      Logger.log('Evento "Ocorreu um incidente" processado. Aguardando próximo evento.');
    }

    Explicação do Código:

    1. ocorreuUmIncidente(): Esta é a função principal que será executada quando o evento "Ocorreu um incidente" for disparado.
    2. SpreadsheetApp.getActiveSpreadsheet(): Obtém uma referência à planilha ativa.
    3. ss.getActiveSheet(): Obtém uma referência à aba atualmente ativa.
    4. ss.getSheetByName("GPS"): Obtém uma referência à aba chamada "GPS".
    5. Verificação da Aba Ativa: O código verifica se a aba ativa é a "RDM". Se não for, exibe um alerta e interrompe a execução.
    6. Verificação do Estado da RDM: O código lê o valor da célula "T1" na aba "RDM" para verificar se o estado é "RDM Ativa". Se não for, exibe um alerta e interrompe a execução.
    7. Mantém o Estado da RDM: A célula "T1" na aba "RDM" é explicitamente definida como "RDM Ativa", garantindo a aplicação da regra R44.
    8. Solicitação ao Usuário: Um alerta é exibido ao usuário, instruindo-o a registrar os detalhes do incidente nas colunas "I" e "J" da aba "GPS". Isso atende às regras R48 e R50, pois direciona a ação imediata e a importância de dados completos e precisos.
    9. Regras R06 e R31: A implementação direta das regras R06 e R31 neste script é um pouco complexa, pois elas dependem do momento exato em que o incidente ocorreu em relação aos horários de início e fim registrados na planilha RDM. Uma abordagem mais eficaz para essas regras seria:
      • Data Validation na Aba "GPS": Configurar regras de validação de dados nas colunas de hora da ocorrência do incidente na aba "GPS", que consultem os horários de início e fim da aba "RDM".
      • Script Adicional (Opcional): Criar um script separado que seja executado após a inserção dos dados na aba "GPS" para verificar e ajustar os horários do incidente de acordo com as regras R06 e R31.
    10. Logger.log(): Registra uma mensagem no log de execução indicando que o evento foi processado.

    Como Usar:

    1. Abra sua planilha do Google Sheets.
    2. Vá em "Ferramentas" > "Editor de script".
    3. Copie e cole o código acima no editor.
    4. Salve o script (dê um nome significativo, como AutomacaoRDM).
    5. Para que este script seja executado quando o evento "Ocorreu um incidente" acontecer, você precisará vincular este script a um gatilho. A forma como o gatilho será implementado dependerá de como o evento "Ocorreu um incidente" é disparado no seu "app" (que ainda será construído). Algumas possibilidades incluem:
      • Um botão na interface do seu "app" que chama uma função do Google Apps Script.
      • Um evento específico na planilha (embora para este cenário, um gatilho baseado em tempo ou em edição talvez não seja o mais adequado para representar um "incidente" disparado pelo usuário).

    Lembre-se de que este script pressupõe que a aba ativa no momento em que o evento é disparado seja a aba "RDM" e que a célula "T1" contenha o estado correto. A integração completa dependerá da construção do seu "app" e de como ele interage com a planilha.

    CONCLUSÃO

    Neste episódio 6, da temporada 4 da série "Do Caos ao Prompt", foi apresentada a implementação do Evento "Ocorreu um incidente", realizada pelo Chatbot de IA Gemini 2.0 Flash.

    As especificações do evento foram feitas em Finite State Machine (FSM).

    Próximo post: Do Caos ao Prompt T4E07: Desenvolvimento do App AG2P – Evento "Decidiu encerrar a jornada"

    Veja a lista de Episódios da Temporada 4 da Série "Do Caos ao Prompt", no final do Episódio T4E01.



    Nenhum comentário:

    Postar um comentário

    Entendendo a Metáfora "Home Office é Moto Boy"

    Dashboard de Produtividade Pessoal T1E14: RESOLVIDO BugCT1-5 Erro 400 no login

    INTRODUÇÃO Post anterior:  Dashboard de Produtividade Pessoal T1E13: BugCT1-5 Erro 400 no login O objetivo deste post é apresentar um prompt...